/*
 * Fila.java
 *
 * Created on 11 de agosto de 2003, 07:16 PM
 */

package Modelo;

/**
 *
 * @author  jreinoso
 */
import java.util.*;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.util.Locale;
import java.text.DecimalFormatSymbols;

public class Fila {
    
    Vector fila;
    
    /** Creates a new instance of Fila */
    public Fila() {
        fila = new Vector();  
    }
    
    // saca error si detecta que ya existe el atributo a ser adicionado.
    public void adicionar(String pAtributo, String pValor) throws Exception {
            AtributoValor av = new AtributoValor(pAtributo, pValor);
            fila.addElement(av);
    }
    
    
    // retorna error si no encontro 
    public String getValor(String pAtributo) throws Exception{
        for(int i=0; i < fila.size(); i++){
            AtributoValor av = (AtributoValor)fila.elementAt(i);
            if (av.getAtributo().equals(pAtributo)) return av.getValor(); 
        }
        throw new Exception("Fila.getValor: No se encontro el atributo " + pAtributo);
    }
    
    // cambia el valor (usando pValor) del atributo dado como parametro (pAtributo)
    public void setValor(String pAtributo, String pValor) throws Exception{
        boolean loEncontro=false;
        for(int i=0; i < fila.size(); i++){
            AtributoValor av = (AtributoValor)fila.elementAt(i);            
            if (av.getAtributo().equals(pAtributo)){ 
                av.setValor(pValor);
                //System.out.println("Fila.setValor:  lo encontro :) ");
                loEncontro=true;
                break;
            }
        }
        if (!loEncontro){
           throw new Exception("Fila.setValor: No se encontro el atributo " + pAtributo);
        }
    } 
    
    public int size(){
        return fila.size();
    }
    
    public AtributoValor getAtributoValor(int pIndex) throws Exception{
        if ( pIndex >= fila.size()) throw new Exception("Fila.getAtributoValor: index mayor al total del vector. " + pIndex + ":" + fila.size());
        AtributoValor av = (AtributoValor)fila.elementAt(pIndex);         
        return av;        
    }
    
    public String getAtributo(int pIndex) throws Exception{
        if ( pIndex >= fila.size()) throw new Exception("Fila.getAtributoValor: index mayor al total del vector. " + pIndex + ":" + fila.size());
        AtributoValor av = (AtributoValor)fila.elementAt(pIndex);         
        return av.getAtributo();        
    } 
    
    public String getValor(int pIndex) throws Exception{
        if ( pIndex >= fila.size()) throw new Exception("Fila.getAtributoValor: index mayor al total del vector. " + pIndex + ":" + fila.size());
        AtributoValor av = (AtributoValor)fila.elementAt(pIndex);         
        return av.getValor();        
    }
    public AtributoValor getAtributoValor(String pAtributo) throws Exception{
        for(int i=0; i<this.fila.size(); i++){
           AtributoValor av = (AtributoValor)fila.elementAt(i);    
           if (av.getAtributo().equals(pAtributo)) return av;
        }
        throw new Exception("Fila.getAtributoValor(pAtributo): No se encontro el atributo " + pAtributo);        
    }
    
    public String toString(){
        String s=null;
        for(int i=0; i < fila.size(); i++){
            AtributoValor av = (AtributoValor)fila.elementAt(i);
            if (s == null)
            s = " " + av.getAtributo() + ":" + av.getValor();          
            else
                s += " " + av.getAtributo() + ":" + av.getValor();          
        }
        return s;
    }
    
      public String FormatoValor(String pAtributo) {
          String formatoAtributo;    
          NumberFormat numeroFormato= NumberFormat.getInstance();
          formatoAtributo = numeroFormato.format(Integer.parseInt(pAtributo));
          
           return(formatoAtributo);
     } //Final de calculaPorc   */
}
